package com.example.demo.service;

import com.example.demo.domain.base.PageResult;
import com.example.demo.domain.param.SysDictCreateParam;
import com.example.demo.domain.param.SysDictQueryParam;
import com.example.demo.domain.param.SysDictUpdateParam;
import com.example.demo.domain.vo.SysDictInfoVO;
import com.example.demo.domain.vo.SysDictTreeVO;
import com.example.demo.domain.vo.SysDictVO;

import java.util.List;

/**
 * SysDictService
 *
 * @author haochen78
 * @date 2025/10/3 22:30
 **/
public interface SysDictService {

    // CRUD 基础方法
    boolean create(SysDictCreateParam param);

    boolean update(SysDictUpdateParam param);

    boolean delete(Long id);

    SysDictVO getById(Long id);

    PageResult<SysDictVO> list(SysDictQueryParam param);

    // 业务方法
    List<SysDictInfoVO> getDictByType(String typeCode);

    SysDictVO getDictByCode(String typeCode, String code);

    List<SysDictTreeVO> buildDictTree(String typeCode);
}
